#ifndef _ARRAY_ORDER_H_
#define _ARRAY_ORDER_H_

#include "./math_def.h"
#include "./math_except.h"

namespace Mathematics{
	//! Sorting functions
	/*!
		namespace containing functions for sorting.
	*/
	namespace SortSpace{
		
		/*!
			Linear sort.
			\param set Array containing the objects to be sorted. (will be modified)
			\param set_size Length of the array.
		*/
		void LSort( int *set, const ulint &set_size ) ;
		/*!
			Linear sort.
			\param set Array (deque format) containing the objects to be sorted. (will be modified)
		*/
		void LSort( deque<int> *set ) ;
		
		/*!
			Quick sort.
			\param set Array containing the objects to be sorted. (will be modified)
			\param set_size Length of the array.
		*/
		void QSort( int *set, const ulint &set_size ) ;
		
		void SortTest() ;
		
	};
};

#endif
